package service;

import java.util.ArrayList;
import java.util.List;

import modelo.MesaDao;
import modelo.MozoDao;
import modelo.SectorDao;
import entities.*;
import beans.*;

public class SectorSrv {

	private static SectorSrv instancia = null;
	
	public static SectorSrv getInstancia()
	{
		if(instancia == null) {
			instancia = new SectorSrv();
		}
		return instancia;
	}
	
	public SectorBean entity2Bean(SectorEntity ent)
	{
		SectorBean sector = new SectorBean();
		sector.setIdSector(ent.getIdSector());
		sector.setNombre(ent.getNombre());
		
		List<MozoBean> mozos = new ArrayList<MozoBean>();
		for (MozoEntity mozoEnt : ent.getMozos()) {
			MozoBean mozo = MozoSrv.getInstancia().entity2Bean(mozoEnt);
			mozos.add(mozo);
		}
		sector.setMozos(mozos);
		
		List<MesaBean> mesas = new ArrayList<MesaBean>();
		for (MesaEntity mesaEnt : ent.getMesas() ) {
			MesaBean mesa = MesaSrv.getInstancia().entity2Bean(mesaEnt);
			mesas.add(mesa);
		}
		sector.setMesas(mesas);
		
		return sector;
	}
	
	public SectorEntity bean2Entity(SectorBean bean)
	{
		SectorEntity sector = new SectorEntity();
		sector.setIdSector(bean.getIdSector());
		sector.setNombre(bean.getNombre());
		
		List<MozoEntity> mozos = new ArrayList<MozoEntity>();
		for (MozoBean mozoBean : bean.getMozos()) {
			MozoEntity mozo = MozoSrv.getInstancia().bean2entity(mozoBean);
			mozos.add(mozo);
		}
		sector.setMozos(mozos);
		
		List<MesaEntity> mesas = new ArrayList<MesaEntity>();
		for (MesaBean mesaBean : bean.getMesas() ) {
			MesaEntity mesa = MesaSrv.getInstancia().bean2Entity(mesaBean);
			mesas.add(mesa);
		}
		sector.setMesas(mesas);
		
		return sector;
	}
	
	/**
	 * dado un idSector, obtiene los datos del mismo
	 * @param idSector
	 * @return SectorBean
	 */
	public SectorBean obtenerSector(Integer idSector)
	{
		SectorEntity sectorEnt = SectorDao.getInstancia().obtenerSector(idSector);
		SectorBean sector = this.entity2Bean(sectorEnt);
		
		return sector;
	}
}
